package org.jeecg.modules.demo.utils;


import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

/**
 * 生成产品批号
 */
public class CreateCodeUtil {

    public static String createCode( Map<String,String> map){
        //调用取code最大值方法   202112230001
        //取兑换申请表的code字段最大值 （String sql = "SELECT MAX(a.code+0) maxCode FROM ll_gifts_exchange a";）
        String resultCode = "";
        String maxCode = "";
        String laterCode ="";
        String str = map.get("maxCode");
        if (str!=null) {
            StringBuffer stringBuffer = new StringBuffer(str);
            maxCode = stringBuffer.substring(0,8);
            laterCode = stringBuffer.substring(8,stringBuffer.length());
        }
        //指定生成的时间格式
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
        String preCode = simpleDateFormat.format(new Date());
        //如果如果当天有生成的编码，直接在尾号加1；如果没有直接生成新的编码
        if (maxCode!=null&&maxCode.contains(preCode)){
            Integer endCode = Integer.parseInt(laterCode); // 截取字符串最后四位，结果:0001
            //计算结果
            endCode = endCode+10000+1;  // 结果10002
            resultCode = preCode+endCode.toString().substring(1);// 把10002首位的1去掉，再拼成201911010002字符串
        }else {
            resultCode = preCode+"0001";
        }
        System.out.println("6："+resultCode);
        return resultCode;
    }


}
